package com.jiukuaidao.zhulin.module;

import android.graphics.Bitmap;
import android.widget.TextView;

import com.jiukuaidao.zhulin.entity.ApiShoppingCartInfo;
import com.jiukuaidao.zhulin.entity.EventShoppingCartInfo;
import com.jiukuaidao.zhulin.module.shoppingcart.AddGoodsParamsInfo;

import java.util.List;

/**
 * Author : PaiTaSuo
 * Date : 2016/5/26
 * Description :
 */
public interface CommContract {
    interface CodeView extends CommBaseView {
        String getCodeMobile();

        TextView codeBtn();

        void codeToast(String msg, String errorCode);

    }

    interface GraphicCodeView extends CommBaseView {
        void getImgUrl(Bitmap bitmap);

        String getGraphicCode();

        void graphicToast(String msg);

        void validateFinish();
    }

    /**
     * 联网购物车
     */
    interface ShoppingCartNetView extends CommBaseView {


        void getShoppingCartDataNetSuc(ApiShoppingCartInfo shoppingCartData);

        String getShopId();

        /**
         * 获取购物车数据字段, EventBus 用的...
         */
        List<EventShoppingCartInfo> getEventShoppingCartDatas();
    }


    /**
     * 本地购物车
     */
    interface ShoppingCartLocalView extends CommBaseView {

        String getGoodsNumber();

        String getGoodsCurPrice();
    }

    /**
     * 订单相关view
     */
    interface orderView extends CommBaseView {
        String getOrderNumber();

        /**
         * 签收成功
         */
        void refreshInfo();

    }

    /**
     * 支付完成调用接口
     */
    interface FinishPayView extends CommBaseView {
        String getOrderNo();

        String getStatus();
    }

    interface CommBaseView {
    }

    interface Presenter {
        /**
         * 获取验证码
         */
        void getVeriCode();

        /**
         * 获取图形验证码
         */
        void getGraphicCode();

        /**
         * 验证图形码
         */
        void validateGraphic();

        /**
         * 本地加商品
         */
        void addShoppingCartLocal();

//        /**
//         * 联网加商品
//         */
//        void addShoppingCartNet();

        /**
         * 本地减商品
         */
        void reduceShoppingCartLocal();


//        /**
//         * 联网减商品
//         */
//        void reduceShoppingCartNet();


        /**
         * 联网加载购物车数据, (结算接口)
         */
        void getShoppingCartDataNet();

        /**
         * 获取本地购物车, 获取成功会发送 EventBus, 类型为 EventShoppingCartInfo
         */
        void getShoppingCartDataLocal();

        /**
         * 获取本地购物车内所有商品总数, 获取成功调用 getGoodsCountTotalSuc
         *
         * @see CommContract.ShoppingCartLocalView
         */
        int getGoodsCountTotal();

        /**
         * 联网获取购物车数据 所需参数
         *
         * @return
         */
        AddGoodsParamsInfo paramsToEntity();

        /**
         * 订单签收
         */
        void orderSign();

        /**
         * 支付完成调用接口
         */
        void getFinishPay();

    }

}
